package model.bean;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;

@Entity
@Table(name="t_vaga")
public class Vaga implements Serializable{
	
	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "geradorVaga")
	@SequenceGenerator(name = "geradorVaga", sequenceName = "sequence_vaga", allocationSize=1)
	@Column(name="id_vaga")
	private Long id;
	
	@Column(length=50)
	private String titulo;
	
	@Column(length=500)
	private String descricao;
	
	@Column(name="numero_vagas" ,length=25)
	private Integer numeroVagas;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name="id_empresa",insertable=true, updatable=true)
	@Fetch(FetchMode.SELECT)
	private Empresa empresa;
	
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getTitulo() {
		return titulo;
	}
	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}
	public String getDescricao() {
		return descricao;
	}
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	public Integer getNumeroVagas() {
		return numeroVagas;
	}
	
	public void setNumeroVagas(Integer numeroVagas) {
		if(numeroVagas == 0)
			this.numeroVagas = null;
			else
			this.numeroVagas = numeroVagas;
	}
	
	public Empresa getEmpresa() {
		return empresa;
	}
	public void setEmpresa(Empresa empresa) {
		this.empresa = empresa;
	}
	
}
